package com.platform.qujia.enums;

import java.util.Arrays;

import com.platform.qujia.constantEnum.KeyValueable;


/**
 * appType  应用渠道 1微信 2支付宝 3银行卡
 * pay_way表中的渠道费率
 * @author adminLiu
 *
 */
public enum PayWayServiceChargeEnum implements KeyValueable<Integer> {
	
	
	/**
	 * 1微信
	 */
	APPTYPE_WECHAT("微信",1),
	
	/**
	 * 2支付宝
	 */
	APPTYPE_ALIPAY("支付宝",2),
	
	/**
	 * 3银行卡
	 */
	APPTYPE_BANK_CARD("银行卡",3),

	/**
	 * 4pos机
	 */
	APPTYPE_POS("POS",4),
	;
	
	

	private String key;//用来做国际化的KEY
	private Integer value;//数据库存的值

	// 构造方法
	PayWayServiceChargeEnum(String key, Integer value) {
		this.key = key;
		this.value = value;
	}

	//覆盖方法
	@Override
	public String toString() {
		return this.key + ":" + this.value;
	}


	@Override
	public Integer getValue() {
		return this.value;
	}

	@Override
	public String getKey() {
		return this.key;
	}


	/**
	 * 根据value获得枚举对象
	 * @param value value值
	 * @return
	 */
	public static PayWayServiceChargeEnum getByValue(Integer value){
		for(PayWayServiceChargeEnum chargeEnum : values()){
			if (chargeEnum.getValue().equals(value)) {
				return chargeEnum;
			}
		}
		return null;
	}


	public static Integer getValue(String type) {
		return Arrays.stream(values()).filter(e -> e.getKey().equals(type)).findFirst().map(PayWayServiceChargeEnum::getValue).orElse(null);
	}

	public static String getKey(int value) {
		return Arrays.stream(values()).filter(e -> e.getValue().equals(value)).findFirst().map(PayWayServiceChargeEnum::getKey).orElse(null);
	}
	
}

